<?php
/**
 * Created by PhpStorm.
 * User: qingyun
 * Date: 17/5/9
 * Time: 下午2:41
 *
 * ━━━━━━━━━━━━━━神兽出没━━━━━━━━━━━━━━━━━
 *
 *　　　　　　　  ┏┓      ┏┓+ +
 *　　　　　　　┏━┛┻━━━━━━┛┻┓ + +
 *　　　　　　　┃　　　┻　　　┃ 　
 *　　　　　　　┃　　　━　　  ┃ ++ + + +
 *　　　　　　　┃ ████━████  ┃+
 *　　　　　　　┃　　　　　　 ┃ +
 *　　　　　　　┃　　　┻　　　┃
 *　　　　　　　┃　　　　　　 ┃ + +
 *　　　　　　　┗━━┓　　  ┏━━┛
 *　　　　　　　　　┃　　　┃　　　　　　　　　　　
 *　　　　　　　　　┃　　　┃ + + + +
 *　　　　　　　　　┃　　　┃　　　　Code is far away from bug with the caonima protecting　　　　　　　
 *　　　　　　　　　┃　　　┃ + 　　　　神兽保佑,代码无bug　　
 *　　　　　　　　　┃　　　┃
 *　　　　　　　　　┃　　　┃　　+　　　　　　　　　
 *　　　　　　　　　┃　 　 ┗━━━━━━━┓ + +
 *　　　　　　　　　┃ 　　　　　　 　┣┓
 *　　　　　　　　　┃ 　　　　　　 　┏┛
 *　　　　　　　　　┗┓┓┏━━━━━━━━┳┓┏┛ + + + +
 *　　　　　　　　 　┃┫┫　      ┃┫┫
 *　　　　　　 　　　┗┻┛      　┗┻┛+ + + +
 *
 * ━━━━━━━━━━━神兽附体━━BUG退散━━━━━━━━━━━
 */

namespace Admin\Controller;
use Common\Controller\AdminBaseController;

class CategoryController extends AdminBaseController{
    /**
     * 文章分类列表页
     */
    public function index(){
        $category = M('Category');
        $list = $category -> where(['type' => 2]) -> order('id') -> select();
        $list = get_tree($list, 0, 0, '----&nbsp;');
        $this -> assign('list',$list);
        $this -> display();
    }


    public function add(){
        $pid = I('get.pid/d',0);
        $this -> assign('pid', $pid);
        $this -> display();
    }

    public function edit(){
        if(!IS_GET){
            $this -> error('非法操作',"/Admin/Category/index");
            exit;
        }
        $id = I('get.id/d',0);
        if(empty($id)){
            $this -> error('非法操作',"/Admin/Category/index");
            exit;
        }
        $category = M('category');
        $categoryInfo = $category -> where(['id' => $id]) -> find();

        $this -> assign('categoryInfo', $categoryInfo);
        $this -> display('Category_add');
    }

    public function Save(){
        if(IS_POST && IS_AJAX){
            $id = I('post.id/d',0);

            $pid = I('post.pid/d',0);
            $title = I('post.title/s','');
            $columns = I('post.columns/s','');
            $seo_title = I('post.seo_title/s','');
            $seo_keyword = I('post.seo_keyword/s','');
            $seo_description = I('post.seo_description/s','');
            $px = I('post.px/d',0);
            $status = I('post.status/d',0);

            //  验证
            if(!$columns){
                $this -> ajaxReturn(['status' => 1, 'msg' => '请输入英文名称']);
            }
            if(!$seo_title){
                $this -> ajaxReturn(['status' => 1, 'msg' => '请输入SEO标题']);
            }
            if(!$seo_keyword){
                $this -> ajaxReturn(['status' => 1, 'msg' => '请输入SEO关键词']);
            }
            if(!$seo_description){
                $this -> ajaxReturn(['status' => 1, 'msg' => '请输入SEO描述']);
            }
            if(!$px){
                $this -> ajaxReturn(['status' => 1, 'msg' => '请输入文章栏目的排序']);
            }

            if(empty($id)){
                /**
                 * ID为空即为添加
                 */
                //  验证栏目名称
                if(!$title){
                    $this -> ajaxReturn(['status' => 1, 'msg' => '栏目名称不能为空']);
                }
                $category = M('Category');
                $r = $category ->field('id') -> where(['title' => $title, 'type' => 2]) -> find();
                if(!is_null($r)){
                    $this -> ajaxReturn(['status' => 1, 'msg' => '栏目名称已被占用']);
                }

                $data = [
                    'type' => 2,
                    'pid' => $pid,
                    'title' => $title,
                    'columns' => $columns,
                    'seo_title' => $seo_title,
                    'seo_keyword' => $seo_keyword,
                    'seo_description' => $seo_description,
                    'px' => $px,
                    'status' => $status
                ];
                $isAdd = $category -> add($data);

                if(!$isAdd){
                    $this -> ajaxReturn(['status' => 1, 'msg' => '添加失败']);
                }
                $this -> ajaxReturn(['status' => 0, 'msg' => '添加成功']);
            }else{
                /**
                 * ID不为空即为修改
                 */

                //  验证栏目名称
                if(!$title){
                    $this -> ajaxReturn(['status' => 1, 'msg' => '栏目名称不能为空']);
                }
                $category = M('category');
                //  通过提交的title 查询数据库
                $r = $category ->field('id') -> where(['title' => $title, 'type' => 2]) -> find();
                //  如果$r不为空则说明提交的title已存在
                if(!is_null($r)){
                    if($r['id'] != $id){
                        $this -> ajaxReturn(['status' => 1, 'msg' => '栏目名称已被占用']);
                    }
                }


                $data = [
                    'title' => $title,
                    'columns' => $columns,
                    'seo_title' => $seo_title,
                    'seo_keyword' => $seo_keyword,
                    'seo_description' => $seo_description,
                    'px' => $px,
                    'status' => $status
                ];

                $isUp = $category -> where(['id' => $id]) -> setField($data);
                if(0 === $isUp){
                    $this -> ajaxReturn(['status' => 1, 'msg' => '别闹...你没有修改任何内容']);
                }elseif(false === $isUp){
                    $this -> ajaxReturn(['status' => 1, 'msg' => '修改失败']);
                }
                $this -> ajaxReturn(['status' => 0, 'msg' => '修改成功']);
            }
        }else{
            $this -> ajaxReturn(['status' => 1, 'msg' => '非法操作']);

        }
    }

    /**
     * 更改栏目状态
     */
    public function statusChange(){
        if(IS_AJAX && IS_POST){
            $id = I('post.id/d',0);
            if(empty($id)){
                $this -> ajaxReturn(['status' => 1, 'msg' => '非法操作']);
            }
            $category = M('Category');
            $r = $category ->field('status') -> where(['id' => $id, 'type' => 2]) -> find();
            if(1 == $r['status']){
                $category -> where(['id' => $id]) -> setField('status', 0);
                $this -> ajaxReturn(['status' => 0, 'msg' => '已禁用', 'data' => 0]);
            }else{
                $category -> where(['id' => $id]) -> setField('status', 1);
                $this -> ajaxReturn(['status' => 0, 'msg' => '已开启', 'data' => 1]);
            }
        }else{
            $this -> ajaxReturn(['status' => 1, 'msg' => '非法操作']);
        }
    }

    /**
     * 删除栏目
     */
    public function del(){
        if(IS_AJAX && IS_POST){
            $id = I('post.id/d');
            if(empty($id)){
                $this -> ajaxReturn(['status' => 1, 'msg' => '非法操作']);
            }

            $category = M('Category');
            $isDel = $category -> delete($id);

            if(!$isDel){
                $this -> ajaxReturn(['status' => 1, 'msg' => '删除失败']);
            }
            $this -> ajaxReturn(['status' => 0, 'msg' => '删除成功']);
        }else{
            if(empty($id)){
                $this -> ajaxReturn(['status' => 1, 'msg' => '非法操作']);
            }
        }
    }
}